Modeling means that a model is created from an object under design for describing the object to be manufactured. The development of data processing systems and computers has transformed modeling into a computerized process, where a product model is created from the object. For example, the product model of a building is an entity consisting of the product data on the life span of the building and building process. Computer applications describe the real-world building elements of the building using building element entities that are processed by the applications. The product model of a building may be stored as a database of a computer application or as a file.
Typically several designers using different applications are involved in a modeling process of a building, such as architects, structural engineers and HVAC (heating, ventilation and air conditioning) engineers, each maintaining their own model, which is a part of a product model of a building. Thanks to the need for model information exchange between these different designers and the fact that modeling of a building by different designers is more and more overlapping in time, most of the applications support external models, also called as reference models. In other words, data transfer between different computer applications by means of a transfer file has been evolved. Entities representing modeled objects in the transfer file may be in a format of a computer application used to create the entities, in another format supported by the computer application (i.e. data can be rewritten to the format), examples of the format including DWG and DGN, or in a common standard format, such as IFC. With the means of the transfer files, a designer can refer to a model created by another and see the geometry in that model in the designer's model. These transfer files are typically read into the model of another designer several times, since the overlapping designing means that a structural engineer does not receive the final architect's plan but several drafts of it, for example, and updated transfer files replacing earlier transfer files need to be read into a model for maintaining correspondence between models handled by different designers. For example, an architect has modeled, using a first modeling application, a wall with a door, and stores the wall and the door in a transfer file. Then the structural engineer's modeling application, which is not the same as the first one, reads the transfer file into the structural engineer's model, which then shows the wall and the door. On the basis of that, the structural engineer creates his own model for the wall with a door opening for structural planning, using the transfer file as a reference model. Then the structural engineer receives an updated transfer file from the architect, in which a window is added to the wall. A problem with this is that since there is no reliable mechanism to transmit identifiers in a transfer file, the transfer file is always read as a new file, i.e. each entity is regarded as a new one. Referring to the above example, when the transfer file is read into the model, a new opening is detected but the wall and the door are also read into the model as new entities, and the structural engineer has to detect himself which entities in the reference model are actually new entities, and if the structural engineer has referred to the door in his/her model, he/she has to make that reference again (since the door is “new”).